Build a Game-Playing Agent

Part 1: Coding and Analysis

  1. Download the template code:

    https://github.com/udacity/AIND-Isolation

  2. Implement the following functions in game_agent.py:

    • MinimaxPlayer.minimax(): implement minimax search
    • AlphaBetaPlayer.alphabeta(): implement minimax search with alpha-beta pruning
    • AlphaBetaPlayer.get_move(): implement iterative deepening search
    • custom_score(): implement your own best position evaluation heuristic
    • custom_score_2(): implement your own alternate position evaluation heuristic
    • custom_score_3(): implement your own alternate position evaluation heuristic
  3. For each of your three custom heuristic functions, evaluate the performance of the heuristic using the included tournament.py script. Then write up a brief summary of your results, describing the performance of the agent using the different heuristic functions verbally and using appropriate visualizations.

Submit the code file: game_agent.py

Submit your analysis as: heuristic_analysis.pdf

Your analysis should conclude with a comparison of the different heuristics and your reasoning for choosing the heuristic you ultimately use in your submitted agent.

If you encounter questions or issues while using Project Assistant, please refer to the FAQ.

Part 2: Research Review

The field of Artificial lIntelligence is continually changing and advancing. To be an AI Engineer at the cutting edge of your field, you'll need to be able to read and communicate some of these advancements with your peers. In order to help you get comfortable with this, in the second part of this project you will read a seminal paper in the field of Game-Playing and write a simple one page summary on it. Here are your instructions:

  1. Select a Game-Playing paper from the following list or another of your choosing:

    • Game Tree Searching by Min / Max Approximation by Ron Rivest, MIT (Fun fact, Ron Rivest is the R is in the RSA cryptographic protocol).
    • Deep Blue by the IBM Watson Team (Fun fact, Deep Blue beat Gary Kasparov in Chess in one of the most famous AI spectacles of the 20th century).
    • AlphaGo by the DeepMind Team.
    • Other paper on Game-Playing of your choosing.
  2. Write a simple one page summary of the paper covering the following:

  • A brief summary of the paper's goals or techniques introduced (if any).
  • A brief summary of the paper's results (if any).

Submit this as: research_review.pdf

Submission

When you execute udacity submit isolation as directed in the project README, the files

  • game_agent.py
  • heuristic_analysis.pdf (if present)
  • research_review.pdf (if present)

are zipped into a zipfile with a name like isolation-674.zip. Please submit this exact file to the reviews system. In other words, you must first submit your solution to the project assistant and then use the resulting file when submitting to Udacity's reviewer network.

Evaluation

  1. Make sure you pass all the tests in the repository.
  2. You will be evaluated according to the project rubric here.